package cn.yuysaln.domain.activity.service;

import cn.yuysaln.domain.activity.model.valobj.ActivitySkuStockKeyVO;

/**
 * SKU库存及其队列的操作接口
 */
public interface IRaffleActivitySkuStockService {
    /**
     * 从sku库存队列取值
     *
     * @return 奖品库存Key信息
     * @throws InterruptedException 异常
     */
    ActivitySkuStockKeyVO takeQueueValue() throws InterruptedException;

    /**
     * 清空sku库存消耗队列
     */
    void clearQueueValue();

    /**
     * sku库存减一
     *
     * @param sku 活动商品
     */
    void updateActivitySkuStock(Long sku);

    /**
     * 当前sku库存清零
     *
     * @param sku 活动商品
     */
    void clearActivitySkuStock(Long sku);

}
